EN FR
EN FR


Section: Scientific Foundations

Languages and Compilation Techniques

Our research focuses on high level languages with executable and formal semantics. The former requirement stems from enumerative verification, which relies on the efficient execution of high-level descriptions. The latter requirement states that languages lacking formal semantics are not suitable for safety critical systems (as language ambiguities usually lead to interpretation divergences between designers and implementors). Moreover, enumerative techniques are not always sufficient to establish the correctness of an infinite system (they only deal with finite abstractions); one might need theorem proving techniques, which only apply to languages with formal semantics.

We are working on several languages with the above properties:

  • Lotos is an international standard for protocol description (Iso /Iec standard 8807:1989), which combines the concepts of process algebras (in particular Ccs and Csp ) and algebraic abstract data types. Thus, Lotos can describe both asynchronous concurrent processes and complex data structures. We use Lotos for various industrial case studies and we develop Lotos compilers, which are part of the Cadp toolbox (see §  5.1 ).

  • We contributed to the definition of E-Lotos (Enhanced-Lotos , Iso /Iec standard 15437:2001), a deep revision of Lotos , which tries to provide a greater expressiveness (for instance, by introducing quantitative time to describe systems with real-time constraints) together with a better user friendliness. Our contributions to E-Lotos are available on the Web (see http://vasy.inria.fr/elotos ).

  • We are also working on an E-Lotos variant, named Lotos NT (Lotos New Technology[12] , [1] , in which we can experiment with new ideas more freely than in the constrained framework of an international standard. Like E-Lotos , Lotos NT consists of three parts: a data part, which enables the description of data types and functions, a process part, which extends the Lotos process algebra with new constructs such as exceptions and quantitative time, and modules, which provide for structure and genericity. The languages differ in that Lotos NT combines imperative and functional features, and is also simpler than E-Lotos in some respects (static typing, operator overloading, arrays), which should make it easier to implement. We are developing several tools for Lotos NT : a prototype compiler named Traian (see §  5.2 ), a translator from (a subset of) Lotos NT to Lotos (see §  6.2.2 ), and an intermediate semantic model named Ntif (New Technology Intermediate Form[7] .